package com.coderush.admin.sys.model.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

/**
 * PackageName com.coderush.admin.sys.model.dto
 *
 * @Author Eason
 * @Version v1.0
 * @ClassName RoleUpdateDto
 * @Date 2025/8/29
 * @Description TODO
 */
@Data
public class RoleUpdateDto {

    /**
     * 主键ID
     */
    @Schema(description = "角色ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "角色ID不能为空")
    private Long id;

    /**
     * 角色名称，如：系统管理员、部门经理、普通员工
     */
    @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "角色名称不能为空")
    private String roleName;

    /**
     * 角色排序（升序）
     */
    @Schema(description = "角色排序", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "角色排序不能为空")
    private Integer roleSort;

    /**
     * 状态：1-启用，0-停用
     */
    @Schema(description = "角色状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "角色状态不能为空")
    private Integer roleStatus;

    /**
     * 数据权限层级，用于控制可见范围（常见于 HR/财务系统）
     */
    private Integer dataScope;

    /**
     * 角色说明，描述该角色的职责和权限范围
     */
    private String description;


}